Multi-Activity App তৈরি করা এবং Data Passing

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Activity এবং Fragment Lifecycle
278

Multi-Activity App তৈরি করা এবং Data Passing

একটি Multi-Activity App এমন একটি অ্যাপ্লিকেশন যা একাধিক Activity ব্যবহার করে। Android অ্যাপ্লিকেশনগুলো প্রায়ই একাধিক Activity নিয়ে গঠিত হয় যেখানে প্রতিটি Activity একটি স্বতন্ত্র UI এবং কার্যকারিতা প্রদান করে। এক Activity থেকে অন্য Activity তে যাওয়ার জন্য এবং ডেটা পাস করার জন্য Intent ব্যবহার করা হয়। Intent এর মাধ্যমে আপনি এক Activity থেকে অন্য Activity তে ডেটা পাঠাতে পারেন, যেমন টেক্সট, সংখ্যা, বা অন্য কোনো তথ্য।

নিচে Multi-Activity App তৈরি করা এবং Data Passing নিয়ে বিস্তারিত আলোচনা করা হলো:


ধাপ ১: নতুন Activity তৈরি করা

প্রথমে আপনার MainActivity থাকবে যা অ্যাপ্লিকেশনের প্রধান স্ক্রিন হিসেবে কাজ করবে। এরপর, একটি নতুন Activity তৈরি করুন যা আপনি SecondActivity হিসেবে ব্যবহার করবেন। Android Studio তে নতুন Activity যোগ করতে:

  1. File -> New -> Activity -> Empty Activity
  2. Activity এর নাম দিন, যেমন SecondActivity

ধাপ ২: XML লেআউট তৈরি করা

MainActivity এবং SecondActivity এর জন্য XML লেআউট ফাইল তৈরি করা হবে। নিচে একটি উদাহরণ দেওয়া হলো:

MainActivity এর লেআউট (activity_main.xml):

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/inputText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter some text" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Go to Second Activity" />

</LinearLayout>

SecondActivity এর লেআউট (activity_second.xml):

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/receivedText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="No data received" />

</LinearLayout>

ধাপ ৩: MainActivity এ Intent ব্যবহার করে Data Passing করা

MainActivity থেকে SecondActivity তে Intent ব্যবহার করে ডেটা পাঠানো হবে। Intent হল Android এর একটি কম্পোনেন্ট, যা Activity, Service, এবং অন্যান্য কম্পোনেন্টের মধ্যে যোগাযোগ স্থাপন করতে ব্যবহৃত হয়।

MainActivity.java:

java

Copy code

public class MainActivity extends AppCompatActivity {

    private EditText inputText;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        inputText = findViewById(R.id.inputText);
        button = findViewById(R.id.button);

        button.setOnClickListener(v -> {
            String text = inputText.getText().toString();
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            intent.putExtra("key", text);
            startActivity(intent);
        });
    }
}

এখানে onClickListener ব্যবহার করে Button এ ক্লিক করলে Intent তৈরি করা হচ্ছে। Intent.putExtra() মেথড ব্যবহার করে আমরা ডেটা (টেক্সট) পাস করছি, এবং startActivity() এর মাধ্যমে SecondActivity চালু করছি।

ধাপ ৪: SecondActivity তে Data গ্রহণ করা

SecondActivity তে Intent থেকে পাঠানো ডেটা গ্রহণ করতে getIntent().getStringExtra() মেথড ব্যবহার করা হয়।

SecondActivity.java:

public class SecondActivity extends AppCompatActivity {

    private TextView receivedText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        receivedText = findViewById(R.id.receivedText);

        // Intent থেকে ডেটা গ্রহণ করা
        Intent intent = getIntent();
        String receivedData = intent.getStringExtra("key");

        // ডেটা TextView তে সেট করা
        if (receivedData != null) {
            receivedText.setText(receivedData);
        }
    }
}

এখানে, SecondActivity তে Intent থেকে getStringExtra() মেথড ব্যবহার করে ডেটা গ্রহণ করা হচ্ছে। তারপর সেই ডেটা TextView তে সেট করা হয়েছে।

ধাপ ৫: AndroidManifest.xml এ নতুন Activity যুক্ত করা

প্রতিটি নতুন Activity তৈরি করার পরে AndroidManifest.xml ফাইলে তা যুক্ত করতে হবে। সাধারণত, Android Studio নিজেই এটি যুক্ত করে, তবে আপনি নিশ্চিত করতে পারেন:

<activity android:name=".SecondActivity"></activity>

উপসংহার

এই উদাহরণের মাধ্যমে, আমরা দেখলাম কিভাবে এক Activity থেকে অন্য Activity তে Intent ব্যবহার করে ডেটা পাঠানো যায় এবং সেই ডেটা গ্রহণ করা যায়। Intent এর মাধ্যমে বিভিন্ন ধরনের ডেটা যেমন String, Integer, Boolean ইত্যাদি পাঠানো যায়।


Advanced Data Passing Techniques

Intent এর মাধ্যমে কেবল Primitive ডেটা নয়, বরং Object, ArrayList, এবং Parcelable বা Serializable অবজেক্টও পাঠানো যায়। নিচে কয়েকটি উদাহরণ দেওয়া হলো:

১. Parcelable Object পাঠানো

Parcelable হল Android এর জন্য একটি Object Serialization টেকনিক, যা ডেটা দ্রুত পাস করার জন্য ব্যবহার করা হয়।

MyData.java (Parcelable Object):

public class MyData implements Parcelable {
    private String name;
    private int age;

    public MyData(String name, int age) {
        this.name = name;
        this.age = age;
    }

    protected MyData(Parcel in) {
        name = in.readString();
        age = in.readInt();
    }

    public static final Creator<MyData> CREATOR = new Creator<MyData>() {
        @Override
        public MyData createFromParcel(Parcel in) {
            return new MyData(in);
        }

        @Override
        public MyData[] newArray(int size) {
            return new MyData[size];
        }
    };

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    // Getters for name and age
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

MainActivity থেকে Parcelable পাঠানো:

MyData myData = new MyData("John", 25);
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("myData", myData);
startActivity(intent);

SecondActivity তে Parcelable গ্রহণ:

MyData myData = getIntent().getParcelableExtra("myData");
if (myData != null) {
    String displayText = "Name: " + myData.getName() + ", Age: " + myData.getAge();
    receivedText.setText(displayText);
}

উপসংহার

একটি Multi-Activity অ্যাপ তৈরি করা এবং Activity গুলোর মধ্যে ডেটা পাস করা Android ডেভেলপমেন্টের একটি মৌলিক বিষয়। Intent ব্যবহার করে আপনি সহজেই ডেটা পাস করতে পারেন, এবং Parcelable এর মাধ্যমে জটিল Object গুলোও Activity এর মধ্যে পাঠাতে পারেন। Intent এর সঠিক ব্যবহার একটি অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারবান্ধব করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...